#pragma once

#include <stdint.h>

namespace Rml {

enum class ShorthandId : uint8_t {
	Margin = 0,
	Padding,
	BorderWidth,
	BorderColor,
	BorderTop,
	BorderRight,
	BorderBottom,
	BorderLeft,
	Border,
	BorderRadius,
	Font,
	PerspectiveOrigin,
	TransformOrigin,

	BackgroundSize,
	BackgroundLattice,
	BackgroundPosition,
	Background, 
	TextShadow,
	_WebkitTextStroke,
	TextDecoration,
	Outline,
};

enum class PropertyId : uint8_t {
	MarginTop = 0,
	MarginRight,
	MarginBottom,
	MarginLeft,
	PaddingTop,
	PaddingRight,
	PaddingBottom,
	PaddingLeft,
	BorderTopWidth,
	BorderRightWidth,
	BorderBottomWidth,
	BorderLeftWidth,
	Display,
	Position,
	Overflow,
	Top,
	Right,
	Bottom,
	Left,
	Width,
	MinWidth,
	MaxWidth,
	Height,
	MinHeight,
	MaxHeight,
	ColumnGap,
	RowGap,
	Gap,
	AlignContent,
	AlignItems,
	AlignSelf,
	Direction,
	FlexDirection,
	FlexWrap,
	JustifyContent,
	AspectRatio,
	Flex,
	FlexBasis,
	FlexGrow,
	FlexShrink,

	BorderTopColor,
	BorderRightColor,
	BorderBottomColor,
	BorderLeftColor,
	BorderTopLeftRadius,
	BorderTopRightRadius,
	BorderBottomRightRadius,
	BorderBottomLeftRadius,
	ZIndex,
	LineHeight,
	Color,
	FontFamily,
	FontStyle,
	FontWeight,
	FontSize,
	TextAlign,
	TextDecorationLine,
	TextDecorationColor,
	WordBreak,

	Perspective,
	PerspectiveOriginX,
	PerspectiveOriginY,
	Transform,
	TransformOriginX,
	TransformOriginY,
	TransformOriginZ,

	Transition,
	Animation,

	Opacity,

	TextShadowH,
	TextShadowV,
	TextShadowColor,
	_WebkitTextStrokeWidth,
	_WebkitTextStrokeColor,

	BackgroundColor,
	BackgroundImage,
	BackgroundLattice,
	BackgroundLatticeX1,
	BackgroundLatticeY1,
	BackgroundLatticeX2,
	BackgroundLatticeY2,
	BackgroundLatticeU,
	BackgroundLatticeV,	
	BackgroundOrigin,
	BackgroundSize,
	BackgroundSizeX,
	BackgroundSizeY,
	BackgroundPositionX,
	BackgroundPositionY,
	BackgroundRepeat,
	BackgroundFilter,

	Filter,

	OutlineColor,
	OutlineWidth,

	PointerEvents,
	ScrollLeft,
	ScrollTop,
};

}
